﻿import Vue from 'vue';
import App from './App';
import axios from 'axios';
import Vuex from 'vuex'; //引用vuex
import store from './vuex/store';
//import store from './store/index';  //引用
import router from './router';  //引用路由配置js文件
import ElementUI from 'element-ui';  //引用element-ui框架
import './assets/theme/element-#03b8cc/index.css' ;    // 引用element-ui框架主题
import md5 from 'js-md5';  //引用md5加密插件
import Public from './assets/js/public';  //引用公共js
import VueAwesomeSwiper from 'vue-awesome-swiper';       //swiper轮播图片的插件
import AweDnd from 'awe-dnd';
// 引入echarts
import echarts from 'echarts';

//import Sortable from 'vue-sortable'



Vue.config.productionTip = false;  //关闭开发环境报错信息
Vue.use(ElementUI);  //使用UI框架
Vue.use(Vuex);  //使用vuex
Vue.prototype.axios = axios;
Vue.prototype.md5 = md5;
Vue.prototype.Public = Public;
Vue.use(VueAwesomeSwiper);    //注册全局的swiper
Vue.use(AweDnd);    //首页拖拽控件
Vue.prototype.$echarts = echarts;

//Vue.use(Sortable);

/* eslint-disable no-new */
var vm = new Vue({
  el: '#app',
  router,
  store,
  template: '<App/>',
  components: { App }
});

/* start ajax请求拦截器 */
axios.interceptors.request.use(function (config) {
	if(config.url==='/v3/member/login'){  //如果是调用了登录接口，则页面显示为loading_login动画
		vm.$router.push({path:'/loading_login'});
	}
	return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
/* end ajax请求拦截器 */
/* start axios响应拦截器 */
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
//  if(response.data.state==response.data.login){
//  	window.location.hash = '#/login'
//  }
    return response;
}, function (error) {
    // 对响应错误做点什么
    if(error.response.config.url==='/v3/member/login'){  //为了解决登录错误的时候，页面一直处于loading_login状态
    	vm.$router.replace({path:'/login'});
    };
    if("401" == error.response.status){
		vm.$router.push({path:'/login'}); //401即用户需要登录
    };
    if('502'==error.response.status){  //如果返回502,就把报错信息修改掉！
    	error.response.data='内部服务器错误，请稍候再试！'
    };
	if('406'==error.response.status){  //返回406, 表明浏览器版本不支持
		window.location.href = 'http://www.gaodayun.com/helper/browser.html'
	};
    return Promise.reject(error);
});
/* end axios响应拦截器 */

router.beforeEach((to,from,next) =>{
	if(to.matched.length === 0){
		next("/404"); //404错误页面
	}
	if (to.fullPath.indexOf(to.query["_k"]) != -1) {
		next();
	} else {
		//next();
		to.params["_k"] = routerRandomStr(6);
		let lastPos = to.fullPath.lastIndexOf("?_k=");
		if (lastPos == -1) {
			next(to.fullPath + "?_k=" + to.params["_k"]);
		} else {
			next(to.fullPath.substring(0, lastPos) + "?_k=" + to.params["_k"]);
		}
	}
});
function routerRandomStr(len) { //生成随机数，小写字母和数字
　　var $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
　　var maxPos = $chars.length;
　　var pwd = '';
　　for (let i = 0; i < len; i++) {
　　　　pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
　　}
　　return pwd;
}



